/**
 * 结点注册显示js文件
 * 
 * @author fb
 */
window.mofang.core.nodeRegister = function() {
	var queryForm = null;
	var params = {data:{page : 1, pagesize : 10}, url : 'core/NodeRegister/pageQueryNewestNode.koala'};

	var init = function() {
		uiInit();
		requestData();
		queryForm = $('#onlineRegNodeQuery');
		domEventInit();
	};
	
	var uiInit = function() {
		_grid.init();
		pageTool.init();
	};
	
	var domEventInit = function() {
		// 日历控件
		var startDate = queryForm.find('input[name="startDate"]');
		var endDate = queryForm.find('input[name="endDate"]');
		
		startDate.datetimepicker({
			language : 'zh-CN',
			format : "yyyy-mm-dd",
			autoclose : true,
			todayBtn : true,
			minView : 2,
			pickerPosition : 'bottom-right'
		}).on('changeDate', function(){
	          endDate.datetimepicker('setStartDate', startDate.val());
	    });
		
		endDate.datetimepicker({
			language : 'zh-CN',
			format : "yyyy-mm-dd",
			autoclose : true,
			todayBtn : true,
			minView : 2,
			pickerPosition : 'bottom-right'
		}).on('changeDate', function(){
			startDate.datetimepicker('setEndDate', endDate.val());
	    });

		// 查询
		$("#newes_regnodeQuery").unbind('click').bind('click',function(e){
			var data = util.serializeJson(queryForm);
			
			if (data.startDate > data.endDate) {
				$.Prompt('查询结束时间不能大于开始时间!');
				return;
			}
			
			params.data.page = 1;
			$.extend(params.data, data);
			requestData();
		});

	};
	
	
	var view = function(data) {
		new webBox({
			title 			: '详细查看',
			url   			: 'pages/core/nodeRegister-view.jsp',
			btn     		: false,
			templateRender	: data
		}).init().show();
	};
	
	var _grid = grid({   
		renderTo 	: 'onlineRegNodeGrid', 
		warnCall    : function(params) {  
						params.data.isOnLine || params.callFun();
		},  
		columns  : [ 	{name : '结点名',dataIndex : 'name'}, 
			            {name : 'IP',dataIndex : 'ip'},  
			            {name : '端口',dataIndex : 'port'},  
			            {name : '结点适配器版本',dataIndex : 'clientAdapterVersion'}, 
			            {name : '服务器适配器版本',dataIndex : 'serverAdapterVersion'}, 
			            {name : '注册时间',dataIndex : 'registerDate'},   
			            {name : '最后一次心跳时间',dataIndex : 'lastHeartbeatConnectionDate'}, 
			            {name : '在线',dataIndex : 'isOnLine'},  
			            {name : '操作', align : 'left' ,renderer : function(data) { 
			            	var menu = '<a id="g_onlineRegView">详细</a>&nbsp;<a id="g_onlineRegHostory">注册历史</a>';
			            	if (data.isOnLine) {
			            		menu += '&nbsp;<a id="g_onlineRegMonitor">监控页</a>';
			            	}
			            	return menu;
						},
						rendererCall : function(obj) {
							var command = {
									"g_onlineRegView" : function(data){view(data);},
									"g_onlineRegHostory" : function(data){
										new webBox({
											title 			: '历史查看',
											html   			: '<div style="height:380px;" id="hostoryRegNodeGrid"></div><div class="text-align" id="hostoryRegNodePage"></div>',
											btn     		: false,
											width           : 950,
											height          : 410,
											templateRender	: obj.data
										}).init().show(function(){
											new loadRegHostory(data);
										});
									  },
									  'g_onlineRegMonitor' : function(data) {
										  window.open(data.taskUrl, "_blank");
									  }
									};
							
							command[obj.id](obj.data);
						}}]
	});	
	
	var pageTool = page({
		renderTo : "onlineRegNodePage",
		pageSize : params.data.pagesize,
		subHandler : function(data) {
			params.data.page = data.currNo;
			params.data.pagesize = data.pageSize;
			requestData();
		}
	});
	
	var loadRegHostory = function(data) {
		var params = {data:{page : 1, pagesize : 10, nodeSn : data.nodeSn}, url : 'core/NodeRegister/pageQueryNode.koala'};

		var _grid = grid({
			renderTo 	: 'hostoryRegNodeGrid', 
			columns  : [ 	{name : '编码',dataIndex : 'nodeSn'}, 
				            {name : '结点名',dataIndex : 'name'}, 
				            {name : 'IP',dataIndex : 'ip'}, 
				            {name : '端口',dataIndex : 'port'}, 
				            {name : 'clien_adp',dataIndex : 'clientAdapterVersion'}, 
				            {name : 'server_adp',dataIndex : 'serverAdapterVersion'}, 
				            {name : '注册时间',dataIndex : 'registerDate'}, 
				            {name : '最后一次心跳时间',dataIndex : 'lastHeartbeatConnectionDate'}, 
				            {name : '在线',dataIndex : 'isOnLine'}, 
				            {name : '操作',renderer : function(data) {
				            	return '<a id="view">详细</a>';
							},
							rendererCall : function(obj) {
								new webBox({
									title 			: '详细查看',
									url   			: 'pages/core/nodeRegister-view.jsp',
									btn     		: false,
									templateRender	: obj.data
								}).init().show();
							}}]
		}).init();	

		
		var pageTool = page({
			renderTo : "hostoryRegNodePage",
			pageSize : params.data.pagesize,
			subHandler : function(data) {
				params.data.page = data.currNo;
				params.data.pagesize = data.pageSize;
				requestData();
			}
		}).init();
		
		var requestData = function() {
			util.mofangAjax({
				url       : params.url,
				data      : params.data,
				succFun   : function(json) {
					_grid.addDatas({
						rowDatas : json.data
					});
					pageTool.render(json.resultCount, params.data.page);
				}

			});
		};
		
		requestData();
	};
	
	var requestData = function() {
		util.mofangAjax({
			url       : params.url,
			data      : params.data,
			succFun   : function(json) {
				_grid.addDatas({
					rowDatas : json.data
				});
				pageTool.render(json.resultCount, params.data.page);
			}

		});
	};
	
	return {
		init : init
	};
};